package com.gd.data.platform.entity;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 数据下载日志实体类
 * 存储在ClickHouse中，用于实时计算和离线分析
 * 
 * @author gd-data-platform
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("download_logs")
public class DownloadLog {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 资源ID
     */
    private String resourceId;

    /**
     * 资源名称
     */
    private String resourceName;

    /**
     * 资源类型（接口、库表、Excel）
     */
    private String resourceType;

    /**
     * 下载方IP
     */
    private String clientIp;

    /**
     * 下载方用户ID
     */
    private String userId;

    /**
     * 下载时间
     */
    private LocalDateTime downloadTime;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 下载状态（成功、失败）
     */
    private String downloadStatus;

    /**
     * 下载耗时（毫秒）
     */
    private Long downloadTimeMs;

    /**
     * 下载方式（直接下载、API调用）
     */
    private String downloadMethod;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
